import Schema from 'validate'
const mobileValidate = new Schema({
  mobile: {
    type: String, // 数字类型
    required: true, // 必填
    match: /^1[3-9]\d{9}$/, // 正则
    message: '手机号码不合法', // 提示信息
  }
});
const codeValidate = new Schema({
  code: {
    type: String, // 数字类型
    required: true, // 必填
    match: /^\d{6}$/, // 正则
    message: '验证码不合法', // 提示信息
  }
});
Page({
  data: {
    // 是否要显示倒计时
    countDownVisible: false,
    // 用户的手机号码
    mobile: "17507281102",
    // 倒计时要显示的时间对象
    timeData: null,
    // 验证码
    code: '',
  },
  // 接收上一个页面
  onLoad({ redirector }) {
    this.redirector = redirector
  },
  // 倒计时 时间发生改变的时候 会触发
  countDownChange(ev) {
    this.setData({
      timeData: ev.detail,
      countDownVisible: ev.detail.minutes === 1 || ev.detail.seconds > 0,
    })
  },
  // 获取验证码
  async onGetCode() {
    // 直接获取到用户的手机号码
    // const { mobile } = this.data
    const mobile = this.data.mobile
    // 做手机号码的格式验证 ;
    const errs = mobileValidate.validate({ mobile: mobile })
    if (errs.length) {
      return wx.utils.toast(errs[0].message) // 弹出提示信息
    }
    // 发送请求 根据手机号码 获取对应的验证码(真实业务  你的手机会收到短信验证码)
    const res = await wx.http({ url: '/code', data: { mobile } })
    // console.log(res)
    this.setData({
      countDownVisible: true,
      code: res.data.code
    })
  },
  // 点击登录按钮
  async onSubmit() {
    const mobile = this.data.mobile
    const code = this.data.code
    // 做手机号码的格式验证 ;
    const errs = mobileValidate.validate({ mobile: mobile })
    if (errs.length) {
      return wx.utils.toast(errs[0].message) // 弹出提示信息
    }
    // 验证码格式验证;
    const codeErrs = codeValidate.validate({ code: code })
    if (codeErrs.length) {
      return wx.utils.toast(codeErrs[0].message) // 弹出提示信息
    }
    // 发送请求
    const res = await wx.http({
      url: "/login",
      method: "post",
      data: { mobile, code }
    })
    // console.log(70, res);
    if (res.code !== 10000) return wx.utils.toast(res.message)

    // 保存token
    const app = getApp()
    app.setToken(res.data.token, res.data.refreshToken)
    // console.log("成功");
    // 登录成功 页面跳转
    // 如果是在之前页面跳转过去的 就跳回原页面 如果不是就跳回到首页
    if (this.redirector) {
      // navigatorTo  不能跳转到tabbar页面
      // switchTab 跳到tabbar页面
      // reLaunch 任何页面都可以跳转
      wx.reLaunch({
        url: '/' + this.redirector
      })
    } else {
      wx.switchTab({
        url: '/pages/index/index'
      })
    }
  }
})